<script>
export default {
  globalData: {
    isAuditEnv: false // 是否为审核环境
  },
  async onLaunch() {
    //console.log('App Launch')
    // 初始化审核环境判断
    this.initAuditEnv()
    // 初始化公开配置（平台名称等）
    this.initPublicConfigs()
    // 检查登录状态
    this.checkLogin()
    // 初始化未读数（仅拉取一次）
    try { await this.$store.dispatch('initUnreadCounts') } catch (e) {}
    this.updateMessageBadge()
  },
  onShow: function() {
    //console.log('App Show')
    // 使用store中的未读数刷新角标（不再发请求）
    this.updateMessageBadge()
  },
  onHide: function() {
    //console.log('App Hide')
    // 退出小程序/进入后台时清空未读数（仅存于内存）
    this.$store.commit('CLEAR_UNREAD_COUNTS')
  },
  
  // 添加全局分享配置
  onShareAppMessage(options) {
    const platformName = this.$store.state.platformName || '星点互助帮'
    
    return {
      title: `分享${platformName}给你，快来体验吧！`,
      path: '/pages/index/index', 
      imageUrl: '/static/images/global-share.png' 
    }
  },
  
  // 分享到朋友圈
  onShareTimeline() {
    const platformName = this.$store.state.platformName || '星点互助帮'
    
    return {
      title: `分享${platformName}给你，快来体验吧！`,
      imageUrl: '/static/images/global-share.png'
    }
  },

  methods: {
    initAuditEnv() {
      // 使用官方API进行环境判断，获取小程序版本信息
      // #ifdef MP-WEIXIN
      try {
        const accountInfo = uni.getAccountInfoSync()
        // develop: 开发版
        // trial: 体验版
        // release: 正式版
        // console.log('小程序版本类型：', accountInfo.miniProgram.envVersion)
        
        // 设置全局变量判断是否为审核环境（全局变量后续用于页面二次保护）
        // 开发环境和体验版被视为审核环境
        this.globalData.isAuditEnv = (
          accountInfo.miniProgram.envVersion === 'develop' || 
          accountInfo.miniProgram.envVersion === 'trial'
        )
		// this.globalData.isAuditEnv=false 测试
        // console.log('是否为审核环境:', this.globalData.isAuditEnv)
      } catch (error) {
        console.error('获取小程序版本信息失败:', error)
        // 默认设置为非审核环境
        this.globalData.isAuditEnv = false
      }
      // #endif
      
      // #ifndef MP-WEIXIN
      // 非微信小程序环境，默认非审核环境
      this.globalData.isAuditEnv = false
      // #endif
    },
    async initPublicConfigs() {
      try {
        const { getPublicConfigs } = require('@/api/config')
        const configs = await getPublicConfigs()
        
        if (configs && configs.platformName) {
          // 存储到 store
          this.$store.commit('setPlatformName', configs.platformName)
          // 同时存储到本地存储作为备份
          uni.setStorageSync('platformName', configs.platformName)
        }
      } catch (error) {
        console.error('初始化公开配置失败:', error)
        // 从本地存储恢复
        const cached = uni.getStorageSync('platformName')
        if (cached) {
          this.$store.commit('setPlatformName', cached)
        }
      }
    },
    
    checkLogin() {
      // 检查是否有登录态
      const token = uni.getStorageSync('ss_satoken')
      if (!token) {
        // 未登录状态，可以进行一些处理
        //console.log('用户未登录')
      } else {
        // 已登录，可以获取用户信息等操作
        this.$store.dispatch('user/getUserInfo')
      }
    },
    async updateMessageBadge() {
      try {
        const token = uni.getStorageSync('ss_satoken')
        if (!token) {
          uni.removeTabBarBadge({ index: 2 })
          uni.hideTabBarRedDot({ index: 2 })
          return
        }
        // 直接使用 store 中的用户未读数
        const count = Number(this.$store.state.userUnreadCount) || 0
        if (count > 0) {
          uni.setTabBarBadge({ index: 2, text: String(count > 99 ? 99 : count) })
        } else {
          uni.removeTabBarBadge({ index: 2 })
          uni.hideTabBarRedDot({ index: 2 })
        }
      } catch (e) {
        uni.hideTabBarRedDot({ index: 2 })
      }
    }
  }
}
</script>